
function createRouteMap(routes,oldPathList,oldPathMap) {
  // 当第一次加载的时候没有 pathList 和 pathMap
      // 如果有oldPathMap 我需要将routes格式化后 放到oldPathMap中
    // 如果没有传递 需要生成一个映射表
  let pathList = oldPathList || []; 
  let pathMap = oldPathMap || Object.create(null);
    console.log(routes)
  routes.forEach(route=>{
    addRouteRecord(route,pathMap)
  })

    return { // 导出映射关系
        pathList,
        pathMap
    }
}
export default createRouteMap;


function addRouteRecord(route,pathMap,parent) {
    let path =parent? `${parent.path}/${route.path}` :route.path ;
        // 将记录和路径关联起来 

        let record = {
            path,
            component:route.component,
            props:route.props||{},
        }

        pathMap[path] = record;

        route.children &&route.children .forEach(childRoute=>{
            addRouteRecord(childRoute,pathMap,record)// 在循环儿子的时候将父路径也同时传入，目的是为了在子路由添加的时候可以拿到父路径
        })
}